package com.service;

import com.dao.UserFileDao;
import com.entity.UserFile;
import com.util.LocalInformation;
import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.Date;

/**
 * Created by wlc on 2018/9/12.
 */
public class UserFileOperator {
    /**
     * 提交用户文件
     * @param title
     * @param type
     * @param content
     */
    public static void submitUserFile(String userId,String title,String type,String content){
        UserFile userFile = new UserFile();
        int[] time= LocalInformation.getNowDate(new Date());

        userFile.setId(LocalInformation.getTimeID());
        userFile.setUserId(userId);
        userFile.setDate(time[0]+"-"+time[1]+"-"+time[2]);
        userFile.setTitle(title);
        userFile.setContent(content);
        userFile.setStatus("已发表");
        userFile.setType(type);

        UserFileDao.saveUserFile(userFile);
    }

    /**
     * 返回*已发表*的指定类型文件信息简介列表，全部为ALL
     * @param type
     * @return
     */
    public static ArrayList<UserFile> getAllFilesInfo(String type){
        ArrayList<UserFile> filesList = UserFileDao.getAllFilesList();
        ArrayList<UserFile> filesInfo = new ArrayList<>();

        for (UserFile file : filesList){
            if (file.getStatus().contains("已发表") && ((type.equals("ALL")) || (file.getType().contains(type)))){
                UserFile temp = new UserFile();
                temp.setId(file.getId());
                temp.setDate(file.getDate());
                temp.setTitle(file.getTitle());
                filesInfo.add(temp);
            }
        }

        return filesInfo;
    }

    /**
     * 返回指定用户名的所有文件内容
     * @param userName
     * @return
     */
    public static ArrayList<UserFile> getAllFilesContent(String userName){
        ArrayList<UserFile> filesList = UserFileDao.getAllFilesList();
        ArrayList<UserFile> userFiles = new ArrayList<>();

        for (UserFile file : filesList){
            if (file.getUserId().equals(userName)){
                userFiles.add(file);
            }
        }

        return  userFiles;
    }

    /**
     * 返回指定文件ID的文件内容
     * @param fileId
     * @return
     */
    public static UserFile getFileContent(String fileId){
        return UserFileDao.getFileById(fileId);
    }

    /**
     * 根据文件状态删除指定ID文件或修改指定ID文件状态
     * @param fileId 文件ID
     * @param isForce 是否强制删除，无视状态
     */
    public static void deleteFile(String fileId,boolean isForce){
        UserFileDao.deleteUserFile(fileId,isForce);
    }

    /**
     * 根据文件的状态将指定ID文件还原到原来状态
     * @param fileId
     */
    public static void reductionFile(String fileId){
        UserFileDao.reductionUserFile(fileId);
    }
}
